home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / unixlib.lha / unix / src / getenv.c < prev    next >
C/C++ Source or Header  |  1996-01-04  |  619b  |  30 lines

  1. #include "amiga.h"
  2. #include <string.h>
  3.  
  4. /* This __getenv removes trailing newlines & multiple calls don't
  5.    destroy results */
  6. char *__getenv(const char *varname)
  7. {
  8.     char *return_string;
  9.     char buf[64];
  10.  
  11.     __chkabort();
  12.     if (varname && varname[0]) {
  13.     int len, size;
  14.  
  15.     len = GetVar(varname, buf, 64, LV_VAR);
  16.     if (len >= 0) {
  17.         size = IoErr();
  18.         return_string = malloc(size + 1);
  19.         if (!return_string)
  20.         return 0;
  21.         if (size != len) {
  22.         if (GetVar(varname, return_string, size + 1, LV_VAR) > 0)
  23.             return return_string;
  24.         } else
  25.         return strcpy(return_string, buf);
  26.     }
  27.     }
  28.     return 0;
  29. }
  30.